Skip to content

ci: a new test file that never runs is worse than no test file - #76

Merged
myobie merged 1 commit into
mainfrom
ci/every-test-target-runs
Aug 25, 2026
Merged

ci: a new test file that never runs is worse than no test file#76
myobie merged 1 commit into
mainfrom
ci/every-test-target-runs

Conversation

@myobie

@myobie myobie commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

The adversarial delete matrix was added to tests/folder_sync.rs and no step was added here, so the two tests that reproduce a file-loss incident ran only on my laptop. CI stayed green throughout and told nobody.

That is the second time. #67 fixed the same shape for the binary's own tests: --lib plus a few named integration targets means a whole file can be invisible while the suite reports success.

Two changes

  1. --test folder_sync now runs, so the guards against the 2026-08-25 loss are checked by something other than me remembering.
  2. A step that fails when a tests/*.rs target is neither run nor named as a known gap. Adding a test file and nothing else now breaks the build. Forgetting should be loud.

I ran the guard both ways before shipping it

Against the current tree it passes and prints what it accounted for:

RUN: folder_sync
known gap: lifecycle
RUN: local_slice
known gap: pathwatch_slice
RUN: provisioning
known gap: shell
RUN: sync_slice
PASS - all accounted for

With a throwaway extra target dropped into tests/:

GUARD FIRES as intended: zz_probe_target

A guard that cannot fail is decoration.

The known gaps are named, not hidden

lifecycle, pathwatch_slice and shell still do not run here. All three pass on macOS locally; none is verified on Linux CI, so I am not switching them on in the same change that fixes the reporting. The list is meant to get shorter.

Agent: Silber.fabric

The adversarial delete matrix was added to `tests/folder_sync.rs` on
2026-08-25 and no step was added here, so the two tests that reproduce a
file-loss incident ran only on the author's laptop. CI stayed green
throughout and told nobody.

That is the SECOND time. #67 fixed the same shape for the binary's own
tests: `cargo test --locked --lib` plus a few named integration targets
means a whole file can be invisible, and the suite reports success while
the new tests never execute.

TWO CHANGES.

`--test folder_sync` now runs, so the guards against last night's loss
are checked by something other than me remembering.

And a step that FAILS when a `tests/*.rs` target is neither run above nor
named in the list of known gaps. Adding a test file and nothing else now
breaks the build, which is the point. Forgetting should be loud.

I RAN THE GUARD BOTH WAYS BEFORE SHIPPING IT. Against the current tree it
passes and prints what it accounted for. With a throwaway extra target in
`tests/` it fails and names it. A guard that cannot fail is decoration.

THE KNOWN GAPS ARE NAMED RATHER THAN HIDDEN: `lifecycle`,
`pathwatch_slice` and `shell` still do not run here. All three pass on
macOS locally and none has been verified on Linux CI, so I am not
switching them on in the same change that fixes the reporting. The list is
meant to get shorter.

Agent: Silber.fabric
@myobie
myobie merged commit 606d19e into main Aug 25, 2026
2 checks passed
@myobie
myobie deleted the ci/every-test-target-runs branch August 25, 2026 07:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant